package edu.ensabap.matricula.action;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionSupport;

import edu.ensabap.matricula.bean.HenryDTO;
import edu.ensabap.matricula.constants.Globales;
import edu.ensabap.matricula.service.HenryService;

public class HenryAction extends ActionSupport{
	/**
	 * 
	 */
	@Autowired
	private HenryService henryService;
	
	private List<HenryDTO> listahenry;
	
	private HenryDTO henryDTO;
	

	
	private HenryDTO henryDTOModificar;
	private HenryDTO henryDTOInsertar;
	private HenryDTO henryDTOEliminar;
	private String mensajeGEneral;
	private static final long serialVersionUID = 1L;

	
	private int cantidadFilas;
	private int paginaMostrar;
	private int cantidadPaginas;
	
	
	public HenryAction(){
		henryDTO=new HenryDTO();
		henryDTOInsertar = new HenryDTO();
		henryDTOEliminar = new HenryDTO();
		henryDTOModificar = new HenryDTO();
	
	cantidadFilas=Globales.NUMERO_FILAS;
	paginaMostrar=1;
	listahenry=new ArrayList<HenryDTO>();
	}
//	muestra el formulario de registrar en el dialog
		public String dlregistrar(){
			return SUCCESS;
		}
		
		public String abreindexHenry(){
			cargaInterfaz();
			return SUCCESS;
		}
		
		public void cargaInterfaz(){
			listahenry=henryService.listarHenry(henryDTO, paginaMostrar, cantidadFilas);
			paginacion();
		}
		public void paginacion(){
			cantidadPaginas=henryService.numerodepaginas(henryDTO, cantidadFilas);
		}
		public String registrarHenry(){
//			valido si los datos no son vacios
			System.out.println("HENRY A INSERTAR TIENE EL SIGUIENTE CODIGO :"+henryDTOInsertar.getCodigo()+"   ////////");
			if (henryDTOInsertar.getCodigo().trim().equals("")){
				mensajeGEneral="NO SE AH INSERTADO NINGUN EDGAR";
				addActionError(mensajeGEneral);
			}else{
				int resultado=-1;
				
				resultado = henryService.insertarHenry(henryDTOInsertar);
				if(resultado>0){
					mensajeGEneral="El alumno se ingreso correctamente";
					addActionMessage(mensajeGEneral);
				}else{
					mensajeGEneral="No se inserto ningun registro";
					addActionError(mensajeGEneral);
				}
				
				henryDTOInsertar.setCodigo("");

				//cargar la interfaz
				cargaInterfaz();
			}
			
			return SUCCESS;
		}
		public String buscarHenry(){
			cargaInterfaz();
				return SUCCESS;
				
			}

//		metodo que eliminar
		public String eliminarHenry(){
			int resultado=-1;
			resultado = henryService.eliminarHenry(henryDTOEliminar);
			if(resultado>0){
				mensajeGEneral="El se elimino correctamente";
				addActionMessage(mensajeGEneral);
			}else{
				mensajeGEneral="No se elimino ningun edgar";
				addActionError(mensajeGEneral);
			}
			
			//cargar la interfaz
			cargaInterfaz();
			
			return SUCCESS;
		}
//		abre la ventana modificar
		
		public String abrirModificarHenry(){
			
			System.out.println("entro al action de editar");
			henryDTOModificar=henryService.obtenerHenryXID(henryDTOModificar);
			
			return SUCCESS;
		}
//		MODIFICAR
		


//		modifica Henry
		public String modificarHenry(){
			System.out.println("ingreso al action modificar");
			
			System.out.println("el nombre es  :"+henryDTOModificar.getId());
			System.out.println("el nombre es  :"+henryDTOModificar.getNombre());
			System.out.println("el nombre es  :"+henryDTOModificar.getCodigo());
			
			int resultado=-1;
			resultado = henryService.modificarHenry(henryDTOModificar);
			if(resultado>0){
				mensajeGEneral="Se modifico correctamente";
				addActionMessage(mensajeGEneral);
			}else{
				mensajeGEneral="No se pudo moodificar";
				addActionError(mensajeGEneral);
			}
			
			//cargar la interfaz
			cargaInterfaz();
			
			return SUCCESS;
		}
		public List<HenryDTO> getListahenry() {
			return listahenry;
		}
		public void setListahenry(List<HenryDTO> listahenry) {
			this.listahenry = listahenry;
		}
		public HenryDTO getHenryDTO() {
			return henryDTO;
		}
		public void setHenryDTO(HenryDTO henryDTO) {
			this.henryDTO = henryDTO;
		}
		public HenryDTO getHenryDTOModificar() {
			return henryDTOModificar;
		}
		public void setHenryDTOModificar(HenryDTO henryDTOModificar) {
			this.henryDTOModificar = henryDTOModificar;
		}
		public String getMensajeGEneral() {
			return mensajeGEneral;
		}
		public void setMensajeGEneral(String mensajeGEneral) {
			this.mensajeGEneral = mensajeGEneral;
		}
		public HenryDTO getHenryDTOInsertar() {
			return henryDTOInsertar;
		}
		public void setHenryDTOInsertar(HenryDTO henryDTOInsertar) {
			this.henryDTOInsertar = henryDTOInsertar;
		}
		public HenryDTO getHenryDTOEliminar() {
			return henryDTOEliminar;
		}
		public void setHenryDTOEliminar(HenryDTO henryDTOEliminar) {
			this.henryDTOEliminar = henryDTOEliminar;
		}
		public int getCantidadFilas() {
			return cantidadFilas;
		}
		public void setCantidadFilas(int cantidadFilas) {
			this.cantidadFilas = cantidadFilas;
		}
		public int getPaginaMostrar() {
			return paginaMostrar;
		}
		public void setPaginaMostrar(int paginaMostrar) {
			this.paginaMostrar = paginaMostrar;
		}
		public int getCantidadPaginas() {
			return cantidadPaginas;
		}
		public void setCantidadPaginas(int cantidadPaginas) {
			this.cantidadPaginas = cantidadPaginas;
		}
	

		
		
}
